import  pymongo
from pymongo import MongoClient as MC
'''
Python 操作 MongoDB的第三方包是 pymongo
用来对 MomgoDB数据库进行 数据的 管理一系列的操作

NoSQL 是支持横向扩展
横向扩展 也叫水平扩展 它是用更多的节点来支撑更大量的数据和请求。
纵向扩展 也叫垂直扩展 它是扩展一个点的能力支撑更大的数据和请求。

'''
'''
1.建立MongoDB 数据库连接
'''

client = MC('localhost',27017)
# client = MC('mongodb://127.0.0.1:27017')

'''
2.连接指定数据库
'''
db = client.py06db
print(type(db.collection_names))
#获取当前指定数据库的所有 collection（表）集合
print(db.collection_names())
'''
3.获取指定的collection集合
'''
grade_1_3 = db.grade_1_3

# documents = grade_1_3.find()
# print(documents)
# for document in documents:
#     print(document)

# documents = grade_1_3.find({"age":6})
# print(documents)
# for document in documents:
#     print(document)

# find_one()查找第一个  （）可填条件，找到一类里的第一个
# documents = grade_1_3.find_one({"age":10})
# print(documents)

#高级查询
#排序 sort(字段,1)  默认为1升序
# age_sort = grade_1_3.find({"age":{"$type":1}},{"name":1,"age":1}).sort("age",-1)
# print(age_sort)
# for item in age_sort:
#     print(item)

'''
5.获取指定 collection 的个数
'''
print(grade_1_3.count())

'''
6.插入操作 insert_one()\insert_many()
Python3.x 之后 推荐的使用方法
'''

# user_1 = {
#     "name":"张三丰",
#     "age":108,
#     "like":[
#         "武当",
#         "太极"
#     ]
# }
#
# grade_1_3.insert_one(user_1)
# for document in grade_1_3.find():
#     print(document)
#
#
#
# user_3 = {
#     "name":"赵信",
#     "age":30,
#     "like":[
#         "干掉王校长",
#         "菊花"
#     ]
# }
#
# user_2 = {
#     "name": "王校长",
#     "age": 108,
#     "like": [
#         "望远镜",
#         "送人头"
#     ]
# }
#
# grade_1_3.insert_many([user_2,user_3])
# for document in grade_1_3.find():
#     print(document)

'''
7.删除 指定集合中的数据
delete_one() / delete_many()
'''
grade_1_3.delete_many({"name":"张三丰"})

for item in grade_1_3.find({"name":"张三丰"}):
    print(item)